413. Arithmetic Slices

1. Question

An integer array is called arithmetic if it consists of at least three elements and if the difference between any two consecutive elements is the same.

  • For example, [1,3,5,7,9],[7,7,7,7], and [3,-1,-5,-9] are arithmetic sequences. Given an integer array nums, return the number of arithmetic subarrays of nums.

A subarray is a contiguous subsequence of the array.

2. Examples

Example 1:

Input: nums = [1,2,3,4]
Output: 3
Explanation: We have 3 arithmetic slices in nums: [1, 2, 3], [2, 3, 4] and [1,2,3,4] itself.

Example 2:

Input: nums = [1]
Output: 0

3. Constraints

  • 1 <= nums.length <= 5000
  • -1000 <= nums[i] <= 1000

4. References

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/arithmetic-slices 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

5. Solutions

class Solution {
    public int numberOfArithmeticSlices(int[] nums) {
        if (null == nums || nums.length < 3) {
            return 0;
        }
        int res = 0;
        int d = nums[1] - nums[0];
        int k = 0;

        for (int i = 2; i < nums.length; i++) {
            if (nums[i] - nums[i - 1] == d) {
                k++;
            } else {
                d = nums[i] - nums[i - 1];
                k = 0;
            }
            res += k;
        }
        return res;
    }
}
Copyright © rootwhois.cn 2021-2022 all right reserved,powered by GitbookFile Modify: 2023-03-05 10:55:51

results matching ""

    No results matching ""